home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / dpbstf.z / dpbstf
Text File  |  1996-03-14  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDPPPPBBBBSSSSTTTTFFFF((((3333FFFF))))                                                          DDDDPPPPBBBBSSSSTTTTFFFF((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DPBSTF - compute a split Cholesky factorization of a real symmetric
  10.      positive definite band matrix A
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE DPBSTF( UPLO, N, KD, AB, LDAB, INFO )
  14.  
  15.          CHARACTER      UPLO
  16.  
  17.          INTEGER        INFO, KD, LDAB, N
  18.  
  19.          DOUBLE         PRECISION AB( LDAB, * )
  20.  
  21. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  22.      DPBSTF computes a split Cholesky factorization of a real symmetric
  23.      positive definite band matrix A.
  24.  
  25.      This routine is designed to be used in conjunction with DSBGST.
  26.  
  27.      The factorization has the form  A = S**T*S  where S is a band matrix of
  28.      the same bandwidth as A and the following structure:
  29.  
  30.        S = ( U    )
  31.            ( M  L )
  32.  
  33.      where U is upper triangular of order m = (n+kd)/2, and L is lower
  34.      triangular of order n-m.
  35.  
  36.  
  37. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  38.      UPLO    (input) CHARACTER*1
  39.              = 'U':  Upper triangle of A is stored;
  40.              = 'L':  Lower triangle of A is stored.
  41.  
  42.      N       (input) INTEGER
  43.              The order of the matrix A.  N >= 0.
  44.  
  45.      KD      (input) INTEGER
  46.              The number of superdiagonals of the matrix A if UPLO = 'U', or
  47.              the number of subdiagonals if UPLO = 'L'.  KD >= 0.
  48.  
  49.      AB      (input/output) DOUBLE PRECISION array, dimension (LDAB,N)
  50.              On entry, the upper or lower triangle of the symmetric band
  51.              matrix A, stored in the first kd+1 rows of the array.  The j-th
  52.              column of A is stored in the j-th column of the array AB as
  53.              follows:  if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-
  54.              kd)<=i<=j; if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for
  55.              j<=i<=min(n,j+kd).
  56.  
  57.              On exit, if INFO = 0, the factor S from the split Cholesky
  58.              factorization A = S**T*S. See Further Details.  LDAB    (input)
  59.              INTEGER The leading dimension of the array AB.  LDAB >= KD+1.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDPPPPBBBBSSSSTTTTFFFF((((3333FFFF))))                                                          DDDDPPPPBBBBSSSSTTTTFFFF((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      INFO    (output) INTEGER
  75.              = 0: successful exit
  76.              < 0: if INFO = -i, the i-th argument had an illegal value
  77.              > 0: if INFO = i, the factorization could not be completed,
  78.              because the updated element a(i,i) was negative; the matrix A is
  79.              not positive definite.
  80.  
  81. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  82.      The band storage scheme is illustrated by the following example, when N =
  83.      7, KD = 2:
  84.  
  85.      S = ( s11  s12  s13                     )
  86.          (      s22  s23  s24                )
  87.          (           s33  s34                )
  88.          (                s44                )
  89.          (           s53  s54  s55           )
  90.          (                s64  s65  s66      )
  91.          (                     s75  s76  s77 )
  92.  
  93.      If UPLO = 'U', the array AB holds:
  94.  
  95.      on entry:                          on exit:
  96.  
  97.       *    *   a13  a24  a35  a46  a57   *    *   s13  s24  s53  s64  s75
  98.       *   a12  a23  a34  a45  a56  a67   *   s12  s23  s34  s54  s65  s76 a11
  99.      a22  a33  a44  a55  a66  a77  s11  s22  s33  s44  s55  s66  s77
  100.  
  101.      If UPLO = 'L', the array AB holds:
  102.  
  103.      on entry:                          on exit:
  104.  
  105.      a11  a22  a33  a44  a55  a66  a77  s11  s22  s33  s44  s55  s66  s77 a21
  106.      a32  a43  a54  a65  a76   *   s12  s23  s34  s54  s65  s76   * a31  a42
  107.      a53  a64  a64   *    *   s13  s24  s53  s64  s75   *    *
  108.  
  109.      Array elements marked * are not used by the routine.
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.